home *** CD-ROM | disk | FTP | other *** search
/ The Original Shareware 1.1 / The Original Shareware (WeMake CDs)(Volume 1.1)(CDs, Inc)(1993).iso / 19 / madtrb11.zip / TIMEPACK.PAS < prev    next >
Pascal/Delphi Source File  |  1985-07-13  |  3KB  |  82 lines

  1. { TimePack - a collection of procedures related to real time clock.
  2.   The following procedures are included :
  3.  
  4. procedure getime (var hrs,min,sec,csec:integer);
  5. procedure Telapsed (hrs1,min1,sec1,csec1,hrs2,min2,sec2,csec2:integer;
  6.                     var Timdif:real);
  7. procedure BegTimer;
  8.   ( References procedure getime. )
  9. procedure EndTimer;
  10.   ( References procedures getime and Telapsed. )
  11.  
  12. Source: "8087 Support: That Much Faster?", TUG Lines Volume I Issue 4
  13.         (omitted from original article)
  14. Author: Richard Brush
  15. Application: IBM PC and true compatibles
  16. }
  17.  
  18. { ************************************************************************* }
  19.  
  20. var
  21.   hrs1,min1,sec1,csec1,hrs2,min2,sec2,csec2:integer;
  22.   TimDif:real;
  23.  
  24. { ************************************************************************* }
  25.  
  26. procedure getime (var hrs,min,sec,csec:integer);
  27. { gets time of day in hours, minutes, seconds and hundredths.
  28.   Makes call to MS_Dos operating system. }
  29.  
  30. type RegSet=record
  31.   ax,bx,cx,dx,bp,si,di,ds,es,flags:integer;
  32.   end {record};
  33. var
  34.   registers:RegSet;
  35.  
  36. begin {getime}
  37.   with registers do
  38.     begin
  39.       ax:=$2C00;
  40.       MsDos (registers);
  41.       hrs:=Hi(cx);
  42.       min:=Lo(cx);
  43.       sec:=Hi(dx);
  44.       csec:=Lo(dx);
  45.     end {with};
  46. end {getime};
  47.  
  48. { ************************************************************************* }
  49.  
  50. procedure Telapsed (hrs1,min1,sec1,csec1,hrs2,min2,sec2,csec2:integer;
  51.                     var Timdif:real);
  52. { calc and write time difference}
  53.  
  54. begin {Telapsed}
  55.   TimDif:=((hrs2-hrs1)*60+(min2-min1))*60+(sec2-sec1)+(csec2-csec1)/100;
  56.   writeln ('    start time was  ',hrs1:2,':',min1:2,':',sec1:2,'.',csec1:2);
  57.   writeln ('    stop time was   ',hrs2:2,':',min2:2,':',sec2:2,'.',csec2:2);
  58.   writeln ('    elapsed time was',TimDif:11:2);
  59. end {Telapsed};
  60.  
  61. { ************************************************************************* }
  62.  
  63. procedure BegTimer;
  64. { Gets starting time from real time clock. References procedure getime. }
  65.  
  66. begin
  67.   getime (hrs1,min1,sec1,csec1);
  68. end {BegTimer};
  69.  
  70. { ************************************************************************* }
  71.  
  72. procedure EndTimer;
  73. { Gets stop time from real time clock, and prints time difference.
  74.   References procedures getime and Telapsed. }
  75.  
  76. begin
  77.   getime (hrs2,min2,sec2,csec2);
  78.   Telapsed (hrs1,min1,sec1,csec1,hrs2,min2,sec2,csec2,TimDif);
  79. end {EndTimer};
  80.  
  81. { ************************************************************************* }
  82.